home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / Caml Light 0.61 / Source / src / lib / vect.mlp < prev   
Encoding:
Text File  |  1993-09-24  |  1.7 KB  |  72 lines  |  [TEXT/MPS ]

  1. (* Operations on vectors, with sanity checks *)
  2.  
  3. (**) #open "int";;
  4. (**) #open "exc";;
  5.  
  6. (*
  7. #ifdef macintosh
  8. #include "::runtime:config.h"
  9. #else
  10. #include "../runtime/config.h"
  11. #endif
  12. #ifdef SIXTYFOUR
  13. #define MAX_VECT_SIZE 0x40000000000000
  14. #else
  15. #ifdef SIXTEEN
  16. #define MAX_VECT_SIZE 0x4000
  17. #else
  18. #define MAX_VECT_SIZE 0x400000
  19. #endif
  20. #endif
  21. *)
  22.  
  23. let make_vect n init =
  24.   if n < 0 or n >= MAX_VECT_SIZE
  25.   then invalid_arg "make_vect"
  26.   else fvect__make_vect n init
  27. ;;
  28. let make_matrix dimx dimy init =
  29.   if dimx < 0 or dimx >= MAX_VECT_SIZE
  30.   or dimy < 0 or dimy >= MAX_VECT_SIZE
  31.   then invalid_arg "make_matrix"
  32.   else fvect__make_matrix dimx dimy init
  33. ;;
  34. let vect_item v i =
  35.   if i < 0 or i >= vect_length v
  36.   then invalid_arg "vect_item"
  37.   else fvect__vect_item v i
  38. ;;
  39. let vect_assign v i e =
  40.   if i < 0 or i >= vect_length v
  41.   then invalid_arg "vect_assign"
  42.   else fvect__vect_assign v i e
  43. ;;
  44. let fill_vect v start len init =
  45.   if start < 0 or len < 0 or start + len > vect_length v
  46.   then invalid_arg "fill_vect"
  47.   else fvect__fill_vect v start len init
  48. ;;
  49. let blit_vect src start_src dst start_dst len =
  50.   if start_src < 0 or start_src + len > vect_length src
  51.   or start_dst < 0 or start_dst + len > vect_length dst
  52.   or len < 0
  53.   then invalid_arg "blit_vect"
  54.   else fvect__blit_vect src start_src dst start_dst len
  55. ;;
  56. let concat_vect = fvect__concat_vect
  57. ;;
  58. let sub_vect v start len =
  59.   if start < 0 or len < 0 or start + len > vect_length v
  60.   then invalid_arg "sub_vect"
  61.   else fvect__sub_vect v start len
  62. ;;
  63. let copy_vect = fvect__copy_vect
  64. ;;
  65. let list_of_vect = fvect__list_of_vect
  66. and vect_of_list = fvect__vect_of_list
  67. ;;
  68. let do_vect = fvect__do_vect
  69. and map_vect = fvect__map_vect
  70. and map_vect_list = fvect__map_vect_list
  71. ;;
  72.